package com.gzl.exercise;

import org.junit.jupiter.api.Test;

/**
 * @PROJECT_NAME: exercise
 * @NAME: 最大连续1的数
 * @DESCRIPTION: 简单
 * @USER: gaozengliang
 * @DATE: 2023/9/28
 */
public class 最大连续1的数 {
    /**
     * 给定一个二进制数组 nums ， 计算其中最大连续 1 的个数。
     *
     * 示例 1：
     * 输入：nums = [1,1,0,1,1,1]
     * 输出：3
     * 解释：开头的两位和最后的三位都是连续 1 ，所以最大连续 1 的个数是 3.
     *
     * 示例 2:
     * 输入：nums = [1,0,1,1,0,1]
     * 输出：2
     *
     * 提示：
     * 1 <= nums.length <= 10^5
     * nums[i] 不是 0 就是 1.
     * */

    @Test
    void findMaxConsecutiveOnes(){
//        int[] nums = {1,1,0,1,1,1};
        int[] nums = {1,0,1,1,0,1};

        int max = 0;    //最大连续次数
        int temp = 0;   //当前连续次数

        for (int num:nums){
            if (num == 1){
                temp++;
            }else {
                if (temp > max){
                    max = temp;
                }
                temp = 0;
            }
        }

        // 最大连续 1 在最后的情况
        if (temp > max){
            max = temp;
        }

        System.out.println(max);
    }
}
